package com.xt.purchasingsystem.mapper;

import com.xt.purchasingsystem.dto.MDesignProcedureDto;
import com.xt.purchasingsystem.model.MDesignProcedure;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MDesignProcedureMapper {
    int deleteByPrimaryKey(Integer id);

    /**
     * 添加产品生产工序设计单的方法
     * @param record
     * @return
     */
    int insert(MDesignProcedure record);

    /**
     * 根据编号修改产品生产工序 的工序物料设计标志的方法
     * G002-0: 未设计
     * G002-1: 已提交
     * G002-2: 已审核
     * @param id
     * @param designModuleTagValue
     * @return
     */
    int updateDesignModuleTag(@Param("id") Integer id, @Param("designModuleTagValue") String designModuleTagValue);

    int updateModuleCostPriceSumById(@Param("id") Integer id, @Param("moduleCostPriceSum") Double moduleCostPriceSum);
    /**
     *查询所以未审核的产品生产工序单的方法
     * @return
     */
    int rowCountAllunreviewedMDesignProcedure();

    /**
     * 分页查询所以未审核的产品生产工序单的方法
     * @param mDesignProcedureDto
     * @return
     */
    List<MDesignProcedureDto> queryAllunreviewedMDesignProcedureByPaging(MDesignProcedureDto mDesignProcedureDto);
    /**
     *查询所以 已审核 工序物料未设计 的产品生产工序单总数的方法
     * @return
     */
    int rowCountAllapprovedMDesignProcedure();
    /**
     * 分页查询所有 已审核 工序物料未设计 的产品生产工序单集合的方法
     * @param mDesignProcedureDto
     * @return
     */
    List<MDesignProcedureDto> queryAllapprovedMDesignProcedureByPaging(MDesignProcedureDto mDesignProcedureDto);
    /**
     *查询所以 已审核 工序物料已提交 的产品生产工序单总数的方法
     * @return
     */
    int rowCountAllcheckedAndMaterialDesigned();
    /**
     * 分页查询所有 已审核 工序物料已提交 的产品生产工序单集合的方法
     * @param mDesignProcedureDto
     * @return
     */
    List<MDesignProcedureDto> queryAllcheckedAndMaterialDesigned(MDesignProcedureDto mDesignProcedureDto);


    int insertSelective(MDesignProcedure record);

    MDesignProcedure selectByPrimaryKey(Integer id);

    /**
     * 根据编号修改产品生产工序单的方法 （字段不为空和！='' 时修改）
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(MDesignProcedure record);

    int updateByPrimaryKey(MDesignProcedure record);
}